package com.sg.controller.bff;

import com.sg.service.biz.bff.PostTypeService;
import com.sg.dto.biz.bff.req.*;
import com.sg.dto.biz.bff.res.*;
import com.sg.common.ro.OkrResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author ：
 * @version 1.0
 * @date ：
 */
@Api(value = "PostType", tags = {"PostType"})
@RestController
// @RequestMapping("/oms/postType/")
public class PostTypeController {

    @Autowired
    PostTypeService postTypeService;

    /**
     * B1-3批量更新岗位类型等级范围（管理）
     */
    @PostMapping("/oms/mgt/postType/batchUpdateStationGradeScope")
    @ApiOperation(value = "B1-3批量更新岗位类型等级范围（管理）", response = OkrResult.class)
    public OkrResult<BffBatchUpdateStationGradeScopeRespDto> batchUpdateStationGradeScope(@RequestBody(required = false) @Validated BffBatchUpdateStationGradeScopeReqDto reqDTO) {
        return OkrResult.success(postTypeService.batchUpdateStationGradeScope(reqDTO));
    }

    /**
     * B1-3返回上一步调整岗位类型（管理）
     * gen by moon at 8/10/2022, 3:38:15 AM
     */
    @PostMapping("/oms/mgt/postType/backToLastStepStationType")
    @ApiOperation(value = "B1-3返回上一步调整岗位类型（管理）", response = OkrResult.class)
    public OkrResult<BffBackToLastStepStationTypeRespDto> backToLastStepStationType(@RequestBody(required = false) @Validated BffBackToLastStepStationTypeReqDto reqDTO) {
        return OkrResult.success(postTypeService.backToLastStepStationType(reqDTO));
    }

    /**
     * B1-3批量更新职务级别等级范围（管理）
     * gen by moon at 8/10/2022, 3:38:05 AM
     */
    @PostMapping("/oms/mgt/postType/batchUpdatePositionGradeScope")
    @ApiOperation(value = "B1-3批量更新职务级别等级范围（管理）", response = OkrResult.class)
    public OkrResult<BffBatchUpdatePositionGradeScopeRespDto> batchUpdatePositionGradeScope(@RequestBody(required = false) @Validated BffBatchUpdatePositionGradeScopeReqDto reqDTO) {
        return OkrResult.success(postTypeService.batchUpdatePositionGradeScope(reqDTO));
    }

    /**
     * B1-3查询岗位类型等级范围列表-第四步（管理）
     * gen by moon at 8/10/2022, 3:38:03 AM
     */
    @PostMapping("/oms/mgt/postType/queryGradeScopeList")
    @ApiOperation(value = "B1-3查询岗位类型等级范围列表-第四步（管理）", response = OkrResult.class)
    public OkrResult<BffQueryGradeScopeListRespDto> queryGradeScopeList(@RequestBody(required = false) @Validated BffQueryGradeScopeListReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryGradeScopeList(reqDTO));
    }

    /**
     * B1-3批量查询职务级别等级范围列表（管理）
     * gen by moon at 8/10/2022, 3:37:58 AM
     */
    @PostMapping("/oms/mgt/postType/batchQueryGradeScope")
    @ApiOperation(value = "B1-3批量查询职务级别等级范围列表（管理）", response = OkrResult.class)
    public OkrResult<BffBatchQueryGradeScopeRespDto> batchQueryGradeScope(@RequestBody(required = false) @Validated BffBatchQueryGradeScopeReqDto reqDTO) {
        return OkrResult.success(postTypeService.batchQueryGradeScope(reqDTO));
    }

    /**
     * B1-3查询可存档职务级别条件（管理）
     */
    @PostMapping("/oms/mgt/postType/queryArchivePositionGrade")
    @ApiOperation(value = "B1-3查询可存档职务级别条件（管理）", response = OkrResult.class)
    public OkrResult<BffQueryArchivePositionGradeRespDto> queryArchivePositionGrade(@RequestBody(required = false) @Validated BffQueryArchivePositionGradeReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryArchivePositionGrade(reqDTO));
    }

    /**
     * B1-3查询岗位类型等级范围列表-第二步（管理）
     * gen by moon at 8/10/2022, 3:37:55 AM
     */
    @PostMapping("/oms/mgt/postType/queryStepTwoGradeScopeList")
    @ApiOperation(value = "B1-3查询岗位类型等级范围列表-第二步（管理）", response = OkrResult.class)
    public OkrResult<BffQueryStepTwoGradeScopeListRespDto> queryStepTwoGradeScopeList(@RequestBody(required = false) @Validated BffQueryStepTwoGradeScopeListReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryStepTwoGradeScopeList(reqDTO));
    }

    /**
     * B1-3查询岗位类型详情（管理边界）
     * gen by moon at 8/10/2022, 3:37:49 AM
     */
    @PostMapping("/oms/mgt/postType/queryStationTypeDetailBorder")
    @ApiOperation(value = "B1-3查询岗位类型详情（管理边界）", response = OkrResult.class)
    public OkrResult<BffQueryStationTypeDetailBorderRespDto> queryStationTypeDetailBorder(@RequestBody(required = false) @Validated BffQueryStationTypeDetailBorderReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryStationTypeDetailBorder(reqDTO));
    }

    /**
     * B1-3查询岗位体系
     * gen by moon at 8/10/2022, 3:37:47 AM
     */
    @PostMapping("/oms/postType/queryStationSystemList")
    @ApiOperation(value = "B1-3查询岗位体系", response = OkrResult.class)
    public OkrResult<BffQueryStationSystemListRespDto> queryStationSystemList(@RequestBody(required = false) @Validated BffQueryStationSystemListReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryStationSystemList(reqDTO));
    }

    /**
     * B1-3查询职务级别列表（边界）
     * gen by moon at 8/10/2022, 3:34:36 AM
     */
    @PostMapping("/oms/postType/queryPositionGradeListBorder")
    @ApiOperation(value = "B1-3查询职务级别列表（边界）", response = OkrResult.class)
    public OkrResult<BffQueryPositionGradeListBorderRespDto> queryPositionGradeListBorder(@RequestBody(required = false) @Validated BffQueryPositionGradeListBorderReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryPositionGradeListBorder(reqDTO));
    }

    /**
     * B1-3修改职务级别（管理）
     * gen by moon at 8/10/2022, 3:36:46 AM
     */
    @PostMapping("/oms/mgt/postType/updatePositionGrade")
    @ApiOperation(value = "B1-3修改职务级别（管理）", response = OkrResult.class)
    public OkrResult<BffUpdatePositionGradeRespDto> updatePositionGrade(@RequestBody(required = false) @Validated BffUpdatePositionGradeReqDto reqDTO) {
        return OkrResult.success(postTypeService.updatePositionGrade(reqDTO));
    }

    /**
     * B1-3修改等级范围（管理）
     * gen by moon at 8/10/2022, 3:36:40 AM
     */
    @PostMapping("/oms/mgt/postType/updateGradeScope")
    @ApiOperation(value = "B1-3修改等级范围（管理）", response = OkrResult.class)
    public OkrResult<BffUpdateGradeScopeRespDto> updateGradeScope(@RequestBody(required = false) @Validated BffUpdateGradeScopeReqDto reqDTO) {
        return OkrResult.success(postTypeService.updateGradeScope(reqDTO));
    }

    /**
     * B1-3查询岗位等级列表（管理）
     * gen by moon at 8/10/2022, 3:36:38 AM
     */
    @PostMapping("/oms/mgt/postType/queryPostGradesList")
    @ApiOperation(value = "B1-3查询岗位等级列表（管理）", response = OkrResult.class)
    public OkrResult<BffQueryPostGradesListRespDto> queryPostGradesList(@RequestBody(required = false) @Validated BffQueryPostGradesListReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryPostGradesList(reqDTO));
    }

    /**
     * B1-3初始化岗位类型（管理）
     * gen by moon at 8/10/2022, 3:35:33 AM
     */
    @PostMapping("/oms/mgt/postType/batchUpdateInitializeGradeScope")
    @ApiOperation(value = "B1-3初始化岗位类型（管理）", response = OkrResult.class)
    public OkrResult<BffBatchUpdateInitializeGradeScopeRespDto> batchUpdateInitializeGradeScope(@RequestBody(required = false) @Validated BffBatchUpdateInitializeGradeScopeReqDto reqDTO) {
        return OkrResult.success(postTypeService.batchUpdateInitializeGradeScope(reqDTO));
    }

    /**
     * B1-3删除职务级别（管理）
     * gen by moon at 8/10/2022, 3:34:32 AM
     */
    @PostMapping("/oms/mgt/postType/deletePositionGrade")
    @ApiOperation(value = "B1-3删除职务级别（管理）", response = OkrResult.class)
    public OkrResult<BffDeletePositionGradeRespDto> deletePositionGrade(@RequestBody(required = false) @Validated BffDeletePositionGradeReqDto reqDTO) {
        return OkrResult.success(postTypeService.deletePositionGrade(reqDTO));
    }

    /**
     * B1-3新增职务级别（管理）
     * gen by moon at 8/10/2022, 3:34:30 AM
     */
    @PostMapping("/oms/mgt/postType/addPositionGrade")
    @ApiOperation(value = "B1-3新增职务级别（管理）", response = OkrResult.class)
    public OkrResult<BffAddPositionGradeRespDto> addPositionGrade(@RequestBody(required = false) @Validated BffAddPositionGradeReqDto reqDTO) {
        return OkrResult.success(postTypeService.addPositionGrade(reqDTO));
    }

    /**
     * B1-3查询岗位类型列表（边界）
     * gen by moon at 8/10/2022, 3:34:11 AM
     */
    @PostMapping("/oms/mgt/postType/queryStationTypeListBorder")
    @ApiOperation(value = "B1-3查询岗位类型列表（边界）", response = OkrResult.class)
    public OkrResult<BffQueryStationTypeListBorderRespDto> queryStationTypeListBorder(@RequestBody(required = false) @Validated BffQueryStationTypeListBorderReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryStationTypeListBorder(reqDTO));
    }

    /**
     * B1-3查询等级范围列表（边界）
     * gen by moon at 8/10/2022, 3:34:02 AM
     */
    @PostMapping("/oms/mgt/postType/queryGradeScopeListBorder")
    @ApiOperation(value = "B1-3查询等级范围列表（边界）", response = OkrResult.class)
    public OkrResult<BffQueryGradeScopeListBorderRespDto> queryGradeScopeListBorder(@RequestBody(required = false) @Validated BffQueryGradeScopeListBorderReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryGradeScopeListBorder(reqDTO));
    }

    /**
     * B1-3查询职务级别列表（管理）
     * gen by moon at 8/10/2022, 3:33:57 AM
     */
    @PostMapping("/oms/mgt/postType/queryPositionGradeList")
    @ApiOperation(value = "B1-3查询职务级别列表（管理）", response = OkrResult.class)
    public OkrResult<BffQueryPositionGradeListRespDto> queryPositionGradeList(@RequestBody(required = false) @Validated BffQueryPositionGradeListReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryPositionGradeList(reqDTO));
    }

    /**
     * B1-3查询岗位类型等级范围列表-第一步（管理）
     * gen by moon at 8/10/2022, 3:31:42 AM
     */
    @PostMapping("/oms/mgt/postType/queryStepOneGradeScopeList")
    @ApiOperation(value = "B1-3查询岗位类型等级范围列表-第一步（管理）", response = OkrResult.class)
    public OkrResult<BffQueryStepOneGradeScopeListRespDto> queryStepOneGradeScopeList(@RequestBody(required = false) @Validated BffQueryStepOneGradeScopeListReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryStepOneGradeScopeList(reqDTO));
    }

    /**
     * B1-3取消修订岗位类型（管理）--待
     * gen by moon at 8/10/2022, 3:31:40 AM
     */
    @PostMapping("/oms/mgt/postType/undoReviseStationType")
    @ApiOperation(value = "B1-3取消修订岗位类型（管理）--待", response = OkrResult.class)
    public OkrResult<BffUndoReviseStationTypeRespDto> undoReviseStationType(@RequestBody(required = false) @Validated BffUndoReviseStationTypeReqDto reqDTO) {
        return OkrResult.success(postTypeService.undoReviseStationType(reqDTO));
    }

    /**
     * B1-3存档岗位类型（管理）
     * gen by moon at 8/10/2022, 3:31:37 AM
     */
    @PostMapping("/oms/mgt/postType/archiveStationType")
    @ApiOperation(value = "B1-3存档岗位类型（管理）", response = OkrResult.class)
    public OkrResult<BffArchiveStationTypeRespDto> archiveStationType(@RequestBody(required = false) @Validated BffArchiveStationTypeReqDto reqDTO) {
        return OkrResult.success(postTypeService.archiveStationType(reqDTO));
    }

    /**
     * B1-3修订岗位类型（管理）
     * gen by moon at 8/10/2022, 3:30:06 AM
     */
    @PostMapping("/oms/mgt/postType/reviseStationType")
    @ApiOperation(value = "B1-3修订岗位类型（管理）", response = OkrResult.class)
    public OkrResult<BffReviseStationTypeRespDto> reviseStationType(@RequestBody(required = false) @Validated BffReviseStationTypeReqDto reqDTO) {
        return OkrResult.success(postTypeService.reviseStationType(reqDTO));
    }

    /**
     * B1-3修改岗位类型（管理）
     * gen by moon at 8/10/2022, 3:29:59 AM
     */
    @PostMapping("/oms/mgt/postType/updateStationType")
    @ApiOperation(value = "B1-3修改岗位类型（管理）", response = OkrResult.class)
    public OkrResult<BffUpdateStationTypeRespDto> updateStationType(@RequestBody(required = false) @Validated BffUpdateStationTypeReqDto reqDTO) {
        return OkrResult.success(postTypeService.updateStationType(reqDTO));
    }

    /**
     * B1-3删除岗位类型（管理）
     * gen by moon at 8/10/2022, 3:29:57 AM
     */
    @PostMapping("/oms/mgt/postType/deleteStationType")
    @ApiOperation(value = "B1-3删除岗位类型（管理）", response = OkrResult.class)
    public OkrResult<BffDeleteStationTypeRespDto> deleteStationType(@RequestBody(required = false) @Validated BffDeleteStationTypeReqDto reqDTO) {
        return OkrResult.success(postTypeService.deleteStationType(reqDTO));
    }

    /**
     * B1-3新增岗位类型（管理）
     * gen by moon at 8/10/2022, 3:29:56 AM
     */
    @PostMapping("/oms/mgt/postType/addStationType")
    @ApiOperation(value = "B1-3新增岗位类型（管理）", response = OkrResult.class)
    public OkrResult<BffAddStationTypeRespDto> addStationType(@RequestBody(required = false) @Validated BffAddStationTypeReqDto reqDTO) {
        return OkrResult.success(postTypeService.addStationType(reqDTO));
    }

    /**
     * B1-3查询岗位类型详情（管理）
     * gen by moon at 8/31/2022, 7:28:13 PM
     */
    @PostMapping("/oms/mgt/postType/queryStationTypeDetail")
    @ApiOperation(value = "B1-3查询岗位类型详情（管理）", response = OkrResult.class)
    public OkrResult<BffQueryStationTypeDetailRespDto> queryStationTypeDetail(@RequestBody(required = false) @Validated BffQueryStationTypeDetailReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryStationTypeDetail(reqDTO));
    }

    /**
     * B1-3查询岗位类型列表
     * gen by moon at 8/10/2022, 3:29:48 AM
     */
    @PostMapping("/oms/mgt/postType/queryStationTypeList")
    @ApiOperation(value = "B1-3查询岗位类型列表", response = OkrResult.class)
    public OkrResult<BffQueryStationTypeListRespDto> queryStationTypeList(@RequestBody(required = false) @Validated BffQueryStationTypeListReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryStationTypeList(reqDTO));
    }

    /**
     * B1-3批量存档等级范围(管理）
     * gen by moon at 8/10/2022, 3:35:31 AM
     */
    @PostMapping("/oms/mgt/postType/batchArchiveGradeScope")
    @ApiOperation(value = "B1-3批量存档等级范围(管理）", response = OkrResult.class)
    public OkrResult<BffBatchArchiveGradeScopeRespDto> batchArchiveGradeScope(@RequestBody(required = false) @Validated BffBatchArchiveGradeScopeReqDto reqDTO) {
        return OkrResult.success(postTypeService.batchArchiveGradeScope(reqDTO));
    }

    /**
     * B1-3批量改岗位等级（管理）
     * gen by moon at 8/10/2022, 3:34:04 AM
     */
    @PostMapping("/oms/mgt/postType/batchUpdatePostGrades")
    @ApiOperation(value = "B1-3批量改岗位等级（管理）", response = OkrResult.class)
    public OkrResult<BffBatchUpdatePostGradesRespDto> batchUpdatePostGrades(@RequestBody(required = false) @Validated BffBatchUpdatePostGradesReqDto reqDTO) {
        return OkrResult.success(postTypeService.batchUpdatePostGrades(reqDTO));
    }

    /**
     * B1-3查询管理模式职务级别列表(管理)(边界)
     * gen by moon at 8/10/2022, 3:36:53 AM
     */
    @PostMapping("/oms/mgt/postType/queryPositionGradeMgtListBorder")
    @ApiOperation(value = "B1-3查询管理模式职务级别列表(管理)(边界)", response = OkrResult.class)
    public OkrResult<BffQueryPositionGradeMgtListBorderRespDto> queryPositionGradeMgtListBorder(@RequestBody(required = false) @Validated BffQueryPositionGradeMgtListBorderReqDto reqDTO) {
        return OkrResult.success(postTypeService.queryPositionGradeMgtListBorder(reqDTO));
    }
}
